package cliente.jogocliente.so;

import java.util.List;

import javax.swing.JFrame;
import javax.swing.JPanel;

import cliente.jogocliente.iu.IUSalaEspera;
import cliente.jogocliente.iu.IUSalaJogo;
import cliente.jogocliente.rn.RNSalaJogo;

public class SOControladoraJogoClienteIU {

	private JFrame frame;
	private SOJogoClienteSaida jogoClienteSaida;

	public SOControladoraJogoClienteIU(JFrame frame,
			SOJogoClienteSaida jogoClienteSaida) {
		this.setFrame(frame);
		this.setJogoClienteSaida(jogoClienteSaida);
	}

	public void trocarPanel(JPanel panel) {
		getFrame().getContentPane().removeAll();
		getFrame().getContentPane().add(panel);
		getFrame().validate();
		getFrame().repaint();
	}

	public void abrirSalaEspera(RNSalaJogo salaJogo) {
		trocarPanel(new IUSalaEspera(salaJogo));
	}

	public void abrirSalaJogoPartida(RNSalaJogo salaJogo) {
		trocarPanel(new IUSalaJogo(salaJogo, getJogoClienteSaida()));
	}

	public void atualizarSalaEspera(List<String> nomeJogadores,
			IUSalaEspera salaEspera) {
		String[] listaJogadores = { "", "", "", "" };
		int indiceNomeJogadores = 0;
		for (String nome : nomeJogadores) {
			listaJogadores[indiceNomeJogadores] = nome;
			indiceNomeJogadores++;
		}
		salaEspera.getSalaEsperaPanelDireita().atualizarList(listaJogadores);
	}

	protected JFrame getFrame() {
		return frame;
	}

	protected void setFrame(JFrame frame) {
		this.frame = frame;
	}

	protected SOJogoClienteSaida getJogoClienteSaida() {
		return jogoClienteSaida;
	}

	protected void setJogoClienteSaida(SOJogoClienteSaida jogoClienteSaida) {
		this.jogoClienteSaida = jogoClienteSaida;
	}
}
